package zhongbo.java.air.flightpath.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 说明：
 *
 * @author 钟波dellNotebook
 * @since 2025年04月01日 星期二 21:47:13
 */
@ApiModel("航迹数据")
@TableName("air_flight_path")
@Data
public class FlightPath {

    @TableId(type = IdType.ASSIGN_UUID)
    @ApiModelProperty("UUID 主键")
    private String id;
    // icao
    @ApiModelProperty("关联飞机ICAO码")
    private String icaoCode;
    // timestamp + trace[0]
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss SSS", timezone = "GMT+8")
    @ApiModelProperty("时间戳（精确到毫秒）")
    private Date timestamp;
    // trace[1]
    @ApiModelProperty("纬度（WGS84坐标系）")
    private Double latitude;
    // trace[2]
    @ApiModelProperty("经度（WGS84坐标系）")
    private Double longitude;
    // trace[3] 如果 为ground 则设置高度为0
    @ApiModelProperty("海拔高度（米）")
    private Integer altitude;
    // trace[4]
    @ApiModelProperty("地速（公里/小时）")
    private Double speed;
    // trace[5]
    @ApiModelProperty("航向角（0-359度）")
    private Double heading;
    // trace[8] 里面的 type 字段
    @ApiModelProperty("数据源类型(不用枚举, 用字符串)（枚举值：ADS_B, RADAR, MLAT）")
    private String sourceType;

}
